package com.yf.model;

import com.yf.enums.VehicleAuditStatus;
import com.yf.enums.VehicleUseStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 车辆
 *
 * @author wangbiao
 * @date 2016-08-17 14：47
 */
@ApiModel
public class Vehicle implements Serializable {


    private static final long serialVersionUID = 5585353653174998218L;

    @ApiModelProperty(value = "主键ID")
    private Integer id;

    /**
     * 车主ID
     */
    @ApiModelProperty(value = "车主ID")
    private Integer userId;

    /**
     * 车型ID
     */
    @ApiModelProperty(value = "车型ID")
    private Integer modelId;

    /**
     * 车牌
     */
    @ApiModelProperty(value = "车牌")
    private String carPlate;

    /**
     * 车辆价格
     */
    @ApiModelProperty(value = "车辆价格")
    private BigDecimal totalPrice;

    /**
     * 电池购买时间
     */
    @ApiModelProperty(value = "电池购买时间")
    private Date buyBatteryTime;

    /**
     * 电池类型
     */
    @ApiModelProperty(value = "电池类型")
    private String batteryModel;

    /**
     * 购买时间
     */
    @ApiModelProperty(value = "购买时间")
    private Date buyCarTime;

    /**
     * 保险期限
     */
    @ApiModelProperty(value = "保险期限")
    private Date insuranceTime;

    /**
     * 发动机号
     */
    @ApiModelProperty(value = "发动机号")
    private String engineSn;

    /**
     * 车架号-车辆识别号：vehicle identify number-简写vin
     */
    @ApiModelProperty(value = "车架号")
    private String vin;

    /**
     * 车辆图片
     */
    @ApiModelProperty(value = "车辆图片")
    private String vehiclePic;

    /**
     * 审核状态
     */
    @ApiModelProperty(value = "审核状态")
    private VehicleAuditStatus auditStatus;

    /**
     * 使用状态
     */
    @ApiModelProperty(value = "使用状态")
    private VehicleUseStatus useStatus;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public Integer getModelId() {
        return modelId;
    }

    public void setModelId(Integer modelId) {
        this.modelId = modelId;
    }

    public String getCarPlate() {
        return carPlate;
    }

    public void setCarPlate(String carPlate) {
        this.carPlate = carPlate;
    }

    public BigDecimal getTotalPrice() {
        return totalPrice;
    }

    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }

    public Date getBuyBatteryTime() {
        return buyBatteryTime;
    }

    public void setBuyBatteryTime(Date buyBatteryTime) {
        this.buyBatteryTime = buyBatteryTime;
    }

    public String getBatteryModel() {
        return batteryModel;
    }

    public void setBatteryModel(String batteryModel) {
        this.batteryModel = batteryModel;
    }

    public Date getBuyCarTime() {
        return buyCarTime;
    }

    public void setBuyCarTime(Date buyCarTime) {
        this.buyCarTime = buyCarTime;
    }

    public Date getInsuranceTime() {
        return insuranceTime;
    }

    public void setInsuranceTime(Date insuranceTime) {
        this.insuranceTime = insuranceTime;
    }

    public String getEngineSn() {
        return engineSn;
    }

    public void setEngineSn(String engineSn) {
        this.engineSn = engineSn;
    }

    public String getVin() {
        return vin;
    }

    public void setVin(String vin) {
        this.vin = vin;
    }

    public String getVehiclePic() {
        return vehiclePic;
    }

    public void setVehiclePic(String vehiclePic) {
        this.vehiclePic = vehiclePic;
    }

    public VehicleAuditStatus getAuditStatus() {
        return auditStatus;
    }

    public void setAuditStatus(VehicleAuditStatus auditStatus) {
        this.auditStatus = auditStatus;
    }

    public VehicleUseStatus getUseStatus() {
        return useStatus;
    }

    public void setUseStatus(VehicleUseStatus useStatus) {
        this.useStatus = useStatus;
    }

    @Override
    public String toString() {
        return ReflectionToStringBuilder.toString(this);
    }

}
